import Vue from 'vue'
import Router from 'vue-router'
import Login from '@/views/Login'
import Home from '@/views/Home'
// 关键：直接导入 Vuex 实例（不是通过 router.app 获取）
import store from '@/store'
// 导入 Element UI 的 Message（避免之前的引入方式报错）
import { Message } from 'element-ui'

Vue.use(Router)

const router = new Router({
  routes: [
    {
      path: '/login',
      name: 'Login',
      component: Login,
      meta: { noNeedLogin: true }
    },
    {
      path: '/home',
      name: 'Home',
      component: Home,
      meta: { needLogin: true }
    },
    {
      path: '*',
      redirect: '/login'
    }
  ]
})

// 路由守卫修改：直接用导入的 store 实例
router.beforeEach((to, from, next) => {
  // 直接访问 store.state.userInfo，不用 router.app.$store
  const userInfo = store.state.userInfo;

  if (to.meta.needLogin && Object.keys(userInfo).length === 0) {
    // 未登录，跳登录页
    next({ path: '/login' });
    // 直接用导入的 Message 提示，避免动态导入报错
    Message.warning('请先登录！');
  } else {
    // 已登录或不需要登录，放行
    next();
  }
})

export default router